/**
 * 字符串的左旋转操作是把字符串前面的若干个字符转移到字符串的尾部。
 * 请定义一个函数实现字符串左旋转操作的功能。比如，输入字符串"abcdefg"和数字2，该函数将返回左旋转两位得到的结果"cdefgab"。
 * 示例 1：
 * 输入: s = "abcdefg", k = 2
 * 输出:"cdefgab"
 * 示例 2：
 * 输入: s = "lrloseumgh", k = 6
 * 输出:umghlrlose"
 */

public class zuoxuan {
    public String reverseLeftWords(String s, int n) {
        if (s.length() == 0 || n == 0) {
            return s;
        }
        int step = n % s.length();
        char[] list = s.toCharArray();
        reverse(list,0,step-1);
        reverse(list,step,s.length()-1);
        reverse(list,0,s.length()-1);
        return new String(list);
    }

    private void reverse(char[] list, int start, int end) {
        while (start < end) {
            char temp = list[start];
            list[start] = list[end];
            list[end] = temp;
            start++;
            end--;
        }
    }
}
